package jschool.modelos;

import javax.swing.table.AbstractTableModel;

import jschool.entidades.Curso;
import jschool.manejadores.ManejadorDeCurso;

public class ModeloCurso extends AbstractTableModel {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String[] encabezado = null;
	private static ModeloCurso instancia = null;
	private ManejadorDeCurso manejadorDeCurso = null;
	private Curso curso = null;

	public ModeloCurso() {
		encabezado = new String[] { "Id_Curso", "Curso",
				"Cantidad De Estudiante", "Seccion" };
		manejadorDeCurso = ManejadorDeCurso.getInstancia();
	}

	public static ModeloCurso getInstancia() {
		if (instancia == null) {
			instancia = new ModeloCurso();
		}
		return instancia;
	}

	public String getColumnName(int posicion) {
		return encabezado[posicion];
	}

	@Override
	public int getColumnCount() {

		return encabezado.length;
	}

	@Override
	public int getRowCount() {

		return manejadorDeCurso.getCurso().size();
	}

	@Override
	public Object getValueAt(int fila, int col) {
		curso = manejadorDeCurso.getCurso().get(fila);
		String retorno = "";
		switch (col) {
		case 0:
			retorno = String.valueOf(curso.getIdCurso());

			break;
		case 1:
			retorno = curso.getCurso();
			break;
		case 2:
			retorno = String.valueOf(curso.getCantidadEstudiantes());
			break;

		case 3:
			retorno = curso.getSeccion();
			break;
		}

		return retorno;
	}

	public void setValueAt(Object valor, int fila, int col) {
		curso = manejadorDeCurso.getCurso().get(fila);
		switch (col) {
		case 1:
			curso.setCurso((String) valor);
			break;

		case 2:
			curso.setCantidadEstudiantes((Integer) valor);
			break;

		case 3:
			curso.setSeccion((String) valor);
			break;
		}

	}

}
